﻿using System;
using System.Collections.Generic;
using System.Text;

namespace DifferentAnalizers
{
    using daBase.Objects;
    using daBase.Analyser;
    /// <summary>
    /// Настройки регулярного анализатора
    /// </summary>
    [Serializable()]
    public class RegularSettings : BaseAnalyserSettings
    {
        private List<AnalyserRegularExpression> regexes;

        /// <summary>
        /// Создание регулярного выражения
        /// </summary>
        private string MakeRegex()
        {
            string fullregex = string.Empty;
            if (regexes.Count > 0)
            {
                int i = 0;
                foreach (AnalyserRegularExpression regex in regexes)
                    fullregex = string.Format("{0}|(?<re{1}>{2})", fullregex, i++, regex.RegEx);
                fullregex = fullregex.Substring(1);
            }
            return fullregex;
        }

        /// <summary>
        /// Регулярные выражения
        /// </summary>
        public List<AnalyserRegularExpression> Regexes
        {
            get
            {
                if (regexes == null)
                    regexes = new List<AnalyserRegularExpression>();
                return regexes;
            }
            set { regexes = value; }
        }

        /// <summary>
        /// Полное регулярное выражение
        /// </summary>
        public string Regex(){ return MakeRegex(); } 
    }
}
